查看原文
其他

520,Python 教你花式表白小姐姐

派森酱 Python技术 2022-09-11

文 | 豆豆

来源:Python 技术「ID: pythonall」


一年一度的 520 又到了,不知今年的你是否脱单了呢?如果还没有的话,不要方,单身 dog 千千万。

虽说缘分是非常奇妙的,不可强求,但遇见了心动的就不要错过,主动点才会有故事,不然最后只剩遗憾空留心中。喜欢就要大声说出来,在今天这个浪漫的日子里,派森酱带你花式表白小姐姐。

今天我们准备用 turtle 画一个丘比特之箭,先来看看我们最终实现的效果图。

安装

使用 turtle 之前需要先安装,直接使用 pip 安装即可。

pip install turtle

使用之前需要先将相应模块引入我们的程序。

import turtle as t

爱心

需要先做一些基础的设置。

def init():
    t.speed(2)
    t.pensize(2)
    t.screensize(480360)
    t.color('red''red')
    t.bgcolor('white')

首先,我们先画下丘比特之箭的右半部分,右半部分主要是一个 V 字形图案外加一个多半圆,因为两颗心是叠加在一起的,所以右边只画一多半圆就可以了,不需要画全。

def draw_heart_right():
    t.up()
    t.goto(5050)
    t.pendown()
    t.right(45)
    t.goto(1000)
    t.seth(45)
    t.fd(120)
    t.circle(50225)

来看下效果如何,貌似还不错,有些许神似。

接下来我们再在左半部分画一个完整的心,一个 V 字形加上两个多半圆即可。

def draw_heart_left():
    t.up()
    t.goto(00)
    t.down()
    t.seth(45)
    t.fd(120)
    t.circle(50225)
    t.seth(90)
    t.circle(50225)
    t.fd(120)

圆的半径不能太大或者太小,不然看起来不协调,圆也不能画太满,我们这里画 225 度,也就是一个半圆多 1/4 的样子。来看下效果。

两颗心已经部分重叠起来了,最后我们用丘比特之箭将两颗相爱的心嵌入其中就大功告成了。

很多人画箭就直接用一条直线代替过去了,那怎么能叫丘比特之箭呢,派森酱提醒小伙伴们对待爱情要认真、用心哦。

箭由箭镞、箭杆、箭羽三部分组成,我们要全部画出来才逼真。

def draw_arrow():
    t.up()
    t.seth(0)

    # 箭羽
    t.goto(-21040)
    t.pendown()
    t.goto(-21544)
    t.goto(-19049)
    t.goto(-17546)
    t.up()

    t.goto(-21040)
    t.pendown()
    t.goto(-21334)
    t.goto(-18539)
    t.goto(-17546)
    t.up()

    # 箭杆
    t.pendown()
    t.goto(080)
    t.penup()
    t.goto(160110)
    t.pendown()
    t.goto(320140)
    
    # 箭簇
    t.left(160)
    t.begin_fill()
    t.fd(10)
    t.left(120)
    t.fd(10)
    t.left(120)
    t.fd(10)
    t.end_fill()

最后我们写一个入口函数,将这些画不同部位的函数给封装起来。代码如下;

if __name__ == '__main__':
    init()
    draw_heart_right()
    draw_heart_left()
    draw_arrow()
    t.hideturtle()
    t.done()

最终效果如下:

很简单有木有,轻松三步实现丘比特之箭,快去后台获取源码 run 起来吧,有心的读者还可以加上自己的爱情宣言哦。

总结

今天我们借用 turtle 库来花式告白小姐姐,代码很简单,理清位置、朝向、以及运动模式即可轻松驾驭。

温馨提醒:女朋友可不是靠各种花式表白方式追来的哦,更多是靠日常点点滴滴的真心相待,毕竟日久见人心嘛。

最后祝各位单身的小伙伴们今天都可以成功脱单,祝各位小情侣们早日成婚,祝各位有家室的幸福快乐。


PS公号内回复 :Python,即可进入Python 新手学习交流群,一起100天计划!


老规矩,兄弟们还记得么,右下角的 “在看” 点一下如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式

识别文末二维码,回复:200520

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存